/**
 * 作文批改相关API
 */
const { request } = require('./request');

/**
 * 上传作文图片
 * @param {String} filePath - 图片临时路径
 * @returns {Promise} - 返回Promise
 */
function uploadEssay(filePath) {
  return new Promise((resolve, reject) => {
    wx.uploadFile({
      url: 'https://www.lovezwj.cn/essay/upload',
      filePath: filePath,
      name: 'essay',
      header: {
        'auth': getApp().globalData.token || ''
      },
      success: (res) => {
        try {
          const data = JSON.parse(res.data);
          if (data.error === 0) {
            resolve(data.body);
          } else if (data.error === 401) {
            // 未登录，需要重新登录
            wx.showToast({
              title: '登录已过期，请重新登录',
              icon: 'none',
              duration: 2000
            });
            // 清除登录状态
            getApp().globalData.token = '';
            getApp().globalData.isLoggedIn = false;
            // 跳转到登录页
            wx.navigateTo({
              url: '/pages/login/login'
            });
            reject(new Error('登录已过期'));
          } else {
            wx.showToast({
              title: data.message || '上传失败',
              icon: 'none',
              duration: 2000
            });
            reject(new Error(data.message || '上传失败'));
          }
        } catch (e) {
          wx.showToast({
            title: '解析响应失败',
            icon: 'none',
            duration: 2000
          });
          reject(e);
        }
      },
      fail: (err) => {
        wx.showToast({
          title: '上传失败',
          icon: 'none',
          duration: 2000
        });
        reject(err);
      }
    });
  });
}

/**
 * 批改作文
 * @param {String} essayId - 作文ID
 * @returns {Promise} - 返回Promise
 */
function correctEssay(essayId) {
  return request('/essay/correct', { essayId });
}

/**
 * 获取批改结果
 * @param {String} essayId - 作文ID
 * @returns {Promise} - 返回Promise
 */
function getCorrectionResult(essayId) {
  return request('/essay/result', { essayId });
}

/**
 * 获取批改历史
 * @param {Number} page - 页码
 * @param {Number} size - 每页数量
 * @returns {Promise} - 返回Promise
 */
function getCorrectionHistory(page = 1, size = 10) {
  return request('/essay/history', { page, size });
}

module.exports = {
  uploadEssay,
  correctEssay,
  getCorrectionResult,
  getCorrectionHistory
}; 